#pragma once

#ifndef _DOUBLE_LINKED_LIST
#define _DOUBLE_LINKED_LIST

#include "basic_lib.h"
#ifdef __cplusplus
extern "C"{
#endif  /* __cplusplus  extern "C" */

typedef struct DoubleLinkedList {
    struct DoubleLinkedList* last;
    void* container;
    struct DoubleLinkedList* next;
} DoubleLinkedListBase;
typedef struct DoubleLinkedList* DoubleLinkedList;

const struct doubleLinkedList_Method {
    DoubleLinkedList (*constructer)();
};



#ifdef __cplusplus
}
#endif  /* __cplusplus  extern "C" */

#endif